package com.yq.cp.service.yw.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yq.cp.config.UserThreadLocal;
import com.yq.cp.entity.permission.User;
import com.yq.cp.entity.yw.YwGdxx;
import com.yq.cp.entity.yw.YwGdxxClNzjl;
import com.yq.cp.entity.yw.YwGdxxCljl;
import com.yq.cp.entity.yw.YwGdxxNzjl;
import com.yq.cp.mapper.permission.UserMapper;
import com.yq.cp.mapper.yw.YwGdxxClNzjlMapper;
import com.yq.cp.mapper.yw.YwGdxxCljlMapper;
import com.yq.cp.mapper.yw.YwGdxxMapper;
import com.yq.cp.mapper.yw.YwGdxxNzjlMapper;
import com.yq.cp.service.yw.YwGdxxClNzjlService;
import com.yq.cp.service.yw.YwGdxxNzjlService;
import com.yq.cp.utils.DateTimeUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 * 运维-工单-扭转记录 服务实现类
 * </p>
 *
 * @author zh
 * @since 2024-09-07
 */
@Service
public class YwGdxxClNzjlServiceImpl extends ServiceImpl<YwGdxxClNzjlMapper, YwGdxxClNzjl> implements YwGdxxClNzjlService {

    @Resource
    YwGdxxClNzjlMapper ywGdxxClNzjlMapper;
    @Resource
    YwGdxxMapper ywGdxxMapper;
    @Resource
    UserMapper userMapper;
    @Resource
    YwGdxxCljlMapper ywGdxxCljlMapper;

    @Override
    public void nz(YwGdxxClNzjl ywGdxxNzjl) {
        YwGdxx ywGdxx = ywGdxxMapper.selectById(ywGdxxNzjl.getGdxxId());
        ywGdxx.setClnzzt(1);
        ywGdxx.setClrId(ywGdxxNzjl.getNzgId());
        ywGdxxMapper.updateById(ywGdxx);

        ywGdxxNzjl.setCszw("负责人");
        ywGdxxNzjl.setNzrId(UserThreadLocal.get().getId());
        ywGdxxNzjl.setNzrName(UserThreadLocal.get().getNickname());
        ywGdxxNzjl.setNzsjTime(DateTimeUtil.dqsj());
        ywGdxxNzjl.setAuditState(1);
        ywGdxxClNzjlMapper.insert(ywGdxxNzjl);

        User user = userMapper.selectById(ywGdxxNzjl.getNzgId());
        YwGdxxClNzjl ywGdxxNzjl2=new YwGdxxClNzjl();
        ywGdxxNzjl2.setNzgId(ywGdxxNzjl.getNzgId());
        ywGdxxNzjl2.setCszw("站长");
        ywGdxxNzjl2.setNzrId(user.getId());
        ywGdxxNzjl2.setNzrName(user.getNickname());
        ywGdxxNzjl2.setAuditState(0);
        ywGdxxNzjl2.setGdxxId(ywGdxxNzjl.getGdxxId());
        ywGdxxClNzjlMapper.insert(ywGdxxNzjl2);

        QueryWrapper<YwGdxxCljl> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("gdxx_id",ywGdxx.getId());
        queryWrapper.orderByDesc("id");
        List<YwGdxxCljl> ywGdxxCljls = ywGdxxCljlMapper.selectList(queryWrapper);
        if (ywGdxxCljls.size()>0){
            YwGdxxCljl ywGdxxCljl = ywGdxxCljls.get(0);
            ywGdxxCljl.setZjly(ywGdxxNzjl.getNzyy());
            ywGdxxCljlMapper.updateById(ywGdxxCljl);

            ywGdxxNzjl.setClxxtp(ywGdxxCljl.getClxxtp());
            ywGdxxNzjl.setClxxwz(ywGdxxCljl.getClxxwz());
            ywGdxxClNzjlMapper.updateById(ywGdxxNzjl);
        }

    }

    @Override
    public void qxnz(YwGdxxClNzjl ywGdxxNzjl) {
        YwGdxx ywGdxx = ywGdxxMapper.selectById(ywGdxxNzjl.getId());
        ywGdxx.setClnzzt(0);
        ywGdxxMapper.updateById(ywGdxx);
        ywGdxxClNzjlMapper.sc(ywGdxxNzjl.getId());
    }

    @Override
    public void jsnz(YwGdxxClNzjl ywGdxxNzjl) {
        QueryWrapper<YwGdxxClNzjl> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("gdxx_id",ywGdxxNzjl.getId());
        queryWrapper.orderByDesc("id");
        List<YwGdxxClNzjl> ywGdxxNzjls = ywGdxxClNzjlMapper.selectList(queryWrapper);
        if (ywGdxxNzjls==null && ywGdxxNzjls.size()==0){
            return;
        }
        YwGdxxClNzjl nzjl = ywGdxxNzjls.get(0);

        if (nzjl!=null){
            nzjl.setAuditState(ywGdxxNzjl.getAuditState());
            nzjl.setAuditTime(DateTimeUtil.dqsj());
            nzjl.setAuditExcuse(ywGdxxNzjl.getAuditExcuse());
            nzjl.setAuditUserId(UserThreadLocal.get().getId());
            ywGdxxClNzjlMapper.updateById(nzjl);

//            YwGdxx ywGdxx = ywGdxxMapper.selectById(nzjl.getGdxxId());
//            ywGdxx.setNzzt(0);
//            ywGdxx.setNzrId(null);
//            ywGdxxMapper.updateById(ywGdxx);
            ywGdxxMapper.xgxxCl(nzjl.getGdxxId(),nzjl.getNzrId());

            Long userId = UserThreadLocal.get().getId();
            YwGdxxCljl ywGdxxCljl=new YwGdxxCljl();
            String phone = UserThreadLocal.get().getPhone();
            ywGdxxCljl.setGdxxId(nzjl.getGdxxId());
            ywGdxxCljl.setJdygId(userId);
            ywGdxxCljl.setJdsjTime(DateTimeUtil.dqsj());
            ywGdxxCljl.setLxdh(phone);
            ywGdxxCljl.setAuditState(0);
            ywGdxxCljlMapper.insert(ywGdxxCljl);
        }
    }

    @Override
    public List<YwGdxxClNzjl> all(YwGdxxClNzjl ywGdxxNzjl) {
        QueryWrapper<YwGdxxClNzjl> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("gdxx_id",ywGdxxNzjl.getId());
        queryWrapper.orderByAsc("id");
        List<YwGdxxClNzjl> ywGdxxNzjls = ywGdxxClNzjlMapper.selectList(queryWrapper);
        return ywGdxxNzjls;
    }
}
